Next: Process Internals, Previous: Buffer Internals, Up: Object Internals [Contents][Index]
The fields of a window (for a complete list, see the
definition of struct window in
window.h) include:
frameThe frame that this window is on.
mini_pNon-nil if this window is a minibuffer
window.
parentInternally, Emacs arranges windows in a tree; each group of siblings has a parent window whose area includes all the siblings. This field points to a window’s parent.
Parent windows do not display buffers, and play little role in display except to shape their child windows. Emacs Lisp programs usually have no access to the parent windows; they operate on the windows at the leaves of the tree, which actually display buffers.
hchildvchildThese fields contain the window’s leftmost child and
its topmost child respectively. hchild is used
if the window is subdivided horizontally by child windows,
and vchild if it is subdivided vertically. In a
live window, only one of hchild,
vchild, and buffer (q.v.) is
non-nil.
nextprevThe next sibling and previous sibling of this window.
next is nil if the window is the
right-most or bottom-most in its group; prev is
nil if it is the left-most or top-most in its
group.
left_colThe left-hand edge of the window, measured in columns, relative to the leftmost column in the frame (column 0).
top_lineThe top edge of the window, measured in lines, relative to the topmost line in the frame (line 0).
total_colstotal_linesThe width and height of the window, measured in columns and lines respectively. The width includes the scroll bar and fringes, and/or the separator line on the right of the window (if any).
bufferThe buffer that the window is displaying.
startA marker pointing to the position in the buffer that is the first character displayed in the window.
pointmThis is the value of point in the current buffer when this window is selected; when it is not selected, it retains its previous value.
force_startIf this flag is non-nil, it says that the
window has been scrolled explicitly by the Lisp program. This
affects what the next redisplay does if point is off the
screen: instead of scrolling the window to show the text
around point, it moves point to a location that is on the
screen.
frozen_window_start_pThis field is set temporarily to 1 to indicate to
redisplay that start of this window should not
be changed, even if point gets invisible.
start_at_line_begNon-nil means current value of
start was the beginning of a line when it was
chosen.
use_timeThis is the last time that the window was selected. The
function get-lru-window uses this field.
sequence_numberA unique number assigned to this window when it was created.
last_modifiedThe modiff field of the window’s
buffer, as of the last time a redisplay completed in this
window.
last_overlay_modifiedThe overlay_modiff field of the
window’s buffer, as of the last time a redisplay
completed in this window.
last_pointThe buffer’s value of point, as of the last time a redisplay completed in this window.
last_had_starA non-nil value means the window’s
buffer was modified when the window was last updated.
vertical_scroll_barThis window’s vertical scroll bar.
left_margin_colsright_margin_colsThe widths of the left and right margins in this window. A
value of nil means no margin.
left_fringe_widthright_fringe_widthThe widths of the left and right fringes in this window. A
value of nil or t means use the
values of the frame.
fringes_outside_marginsA non-nil value means the fringes outside the
display margins; othersize they are between the margin and
the text.
window_end_posThis is computed as z minus the buffer
position of the last glyph in the current matrix of the
window. The value is only valid if
window_end_valid is not nil.
window_end_byteposThe byte position corresponding to
window_end_pos.
window_end_vposThe window-relative vertical position of the line
containing window_end_pos.
window_end_validThis field is set to a non-nil value if
window_end_pos is truly valid. This is
nil if nontrivial redisplay is pre-empted, since
in that case the display that window_end_pos was
computed for did not get onto the screen.
cursorA structure describing where the cursor is in this window.
last_cursorThe value of cursor as of the last redisplay
that finished.
phys_cursorA structure describing where the cursor of this window physically is.
phys_cursor_typephys_cursor_heightphys_cursor_widthThe type, height, and width of the cursor that was last displayed on this window.
phys_cursor_on_pThis field is non-zero if the cursor is physically on.
cursor_off_pNon-zero means the cursor in this window is logically off. This is used for blinking the cursor.
last_cursor_off_pThis field contains the value of cursor_off_p
as of the time of the last redisplay.
must_be_updated_pThis is set to 1 during redisplay when this window must be updated.
hscrollThis is the number of columns that the display in the window is scrolled horizontally to the left. Normally, this is 0.
vscrollVertical scroll amount, in pixels. Normally, this is 0.
dedicatedNon-nil if this window is dedicated to its
buffer.
display_tableThe window’s display table, or nil if
none is specified for it.
update_mode_lineNon-nil means this window’s mode line
needs to be updated.
base_line_numberThe line number of a certain position in the buffer, or
nil. This is used for displaying the line number
of point in the mode line.
base_line_posThe position in the buffer for which the line number is
known, or nil meaning none is known. If it is a
buffer, don’t display the line number as long as the
window shows that buffer.
column_number_displayedThe column number currently displayed in this
window’s mode line, or nil if column
numbers are not being displayed.
current_matrixdesired_matrixGlyph matrices describing the current and desired display of this window.
Next: Process Internals, Previous: Buffer Internals, Up: Object Internals [Contents][Index]